### 项目六 按键控灯

1.项目介绍

按键模块按下我们的单片机读取到低电平，松开读取到高电平。在这一实验课程中，我们利用按键和RGB做一个扩展，当按键按下时即读取到低电平时我们点亮RGB灯，松开按键时即读取到高电平时我们熄灭RGB灯，这样就可以通过一个模块控制另一个模块了。

2.模块相关资料

![](./media/image-20250723152348524.png)

附原理图，按键有四个引脚，其中1和3是相连的，2和4是相连的，在我们未按下按键时，13与24是断开的，信号端S读取的是被4.7K的上拉电阻R1所拉高的高电平，而当我们按下按键时，13和24连通。信号端S连接到了GND，此时读取到的电平为低电平，即按下按键，传感器信号端为低电平；松开按键时，信号端为高电平。

3.实验组件

| 控制板 * 1                               | 扩展板 * 1                               | USB线*1                                  |
| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- |
| ![](./media/image-20250723144253824.png) | ![](./media/image-20250723144304891.png) | ![](./media/image-20250723144313049.png) |
| 3P 转杜邦线母 *1                         | RGB灯*1                                  | 按键*1                                   |
| ![](./media/image-20250723144321118.png) | ![](./media/image-20250723150524885.png) | ![](./media/image-20250723175729070.png) |

4.模块接线图

![](./media/image-20250723152412440.png)

5.实验代码

拖动代码块编写程序：

寻找代码块

![](./media/image-20250723152452477.png)

![](./media/image-20250723152502245.png)

![](./media/image-20250723152522501.png)

完整的代码如下

![](./media/image-20250723152541002.png)

6.实验结果

上传测试代码成功，上电后，当我们按下智能家居**⑪号位置**的按键，RGB灯被点亮，松开按键，RGB灯熄灭。

打开串口监视器，波特率设置9600；可以看到按键的电平状态，按键被按下时输出0，未按下输出1；

![](./media/image-20250723152614204.png)

7.代码说明

| ![](./media/image-20250723152644137.png) | 串口显示按键数据                                             |
| ---------------------------------------- | ------------------------------------------------------------ |
| ![](./media/image-20250723152701383.png) | 判断语句：如果......否则...... 如果按键被按下执行点亮RGB灯程序 否则执行熄灭RGB灯程序 |
| ![](./media/image-20250723152725467.png) | 点击蓝色按钮把 否则 拖到 如果下面就得到语句：如果......否则...... |

